<style type="text/css">
.coluna {
	border-right-width: inherit;
	background: menutext;
	color: white;
	font-weight: bold;
}

.linhaInicio {
	color: white;
	background: black;
	background-color: black;
}

.linhaPar {
	padding: 0px;
	margin: 0px;
	background: #EEEEEE;
}
</style>
<?php

class AnaliseController extends Zend_Controller_Action
{

    public function init()
    {
        if ( !Zend_Auth::getInstance()->hasIdentity()) {
            return $this->_helper->redirector->goToRoute( array('controller' => 'auth'), null, true);
            
        }
    }

    public function indexAction()
    {
    	
    	//mostra os dados inseridos na análise bem como os comandos de deletar e atualizar tais dados
		
    	// verifica se a variável foi setada e caso positivo atribui o valor a $marcador
    	if(isset($_REQUEST['marcador']))
    		$marcador = $_REQUEST['marcador'];
    		
    	// Nova instancia de acesso
    	$acesso = new Application_Model_Acesso ();
    	
    	// string contendo os dados da analise
		$stringTabelaAnalise = $acesso->dadosAnalise($marcador, "linhaPar");
		
		// atribui $marcador à lista de colunas a serem retornadas na query
		$stringColunasAcessos = $marcador.",";
		
		// atribui as colunas com dados binários
		$stringColunasAcessos .= $acesso->nomeColunasQuery($marcador);
		
		// coloca os dados da string em um array
		$arrayTabelaAcessos = explode(",", $stringColunasAcessos);
		
		// Envia os dados para a view
		$this->view->stringTabelaAnalise = $stringTabelaAnalise;
		
		// Envia os dados para a view
		$this->view->colunas = $arrayTabelaAcessos;
		
		// cria o formulário para inserção de novos dados
       	$form = new Application_Form_Analise($arrayTabelaAcessos);
		
       	// Envia o formulário para a view
       	$this->view->form = $form;
       	
       	// Envia os dados para a view
		$this->view->marcador = $marcador;
		
		// Verifica se os dados foram passados por post
	    if ( $this->getRequest()->isPost() ) {
	    		
	    		// Armazena os dados enviados pelo formulário
		        $data = $this->getRequest()->getPost();
		        
		        // Verifica se o formulário foi corretamente preenchido
		        if ( $form->isValid($data) ) {
		        	
		        	// Vetor que armazena os dados que serão armazenados no banco de dados
		        	$blind = null;
		        	
		        	// Armazena os dados do formulário no vetor
		        	foreach ($arrayTabelaAcessos as $campoForm){
		        				        				        		
		        		$blind[$campoForm] = $form->getValue($campoForm);
		        				        		
		        	}
		        	
		        	// cria uma instância do banco de dados
		        	$db = Zend_Db_Table::getDefaultAdapter();
		        	
		        	// Insere os dados no banco de dados
		        	$db->insert($marcador, $blind);
		        	
		        	// redireciona para a página anterior
		        	$this->redirect($this->view->url()."?marcador=$marcador"); //$this->redirect($this->view->url());
		        	
				}
		    
    }

    


    }

    public function deletarAction()
    {
       	
    	//verifica se o nome da tabela e o id a ser editado foram passados pela url
    	if(isset($_REQUEST['marcador']) &&  isset($_REQUEST['id'])){
    		$tabela = $_REQUEST['marcador'];
    		$id = $_REQUEST['id'];
    	}
        $db = Zend_Db_Table::getDefaultAdapter();
        $db->delete($tabela, "id=$id");
        $this->redirect("http://genetic/analise/index?marcador=$tabela");
		        	
        
    }

    public function editarAction()
    {    	
    	// Atualização da tabela de acessos
    	
    	//verifica se o nome da tabela e o id a ser editado foram passados pela url
		if(isset($_REQUEST['marcador']) && isset($_REQUEST['id'])){
    		$tabela = $_REQUEST['marcador'];
    		$id = $_REQUEST['id'];
		}
		
		// cria uma nova instancia do model acesso
		$acesso = new Application_Model_Acesso ();
		
		// string com o nome das colunas da tabela separados por vírgula
		$stringColunasAcessos = $tabela.",";
		$stringColunasAcessos .= $acesso->nomeColunasQuery($tabela);
		
		// instância do banco de dados
		$db = Zend_Db_Table::getDefaultAdapter();
		
		// retorna os dados da tabela com id especificado
		$dados = $db->fetchRow("select $stringColunasAcessos from $tabela where id=$id");
		
		// vetor que armazena os dados antigos. Antes da atualização
		$dadosAntigos = null;
		
		// Armazena no vetor os dados relativos ao id especificado
		foreach ($dados as $key=>$d){
			$dadosAntigos[$key] = $d;
		}
    	
		// Armazena os nomes das colunas da tabela especificada
		$nomeColunas = explode(",", $stringColunasAcessos);
		
		// Envia os nomes das colunas para a view
		$this->view->colunas = $nomeColunas;
       
		// Cria um novo formulário passando os dados antigos para serem colocados no value
		$form = new Application_Form_Analise($nomeColunas, $dadosAntigos);
		
		// Envia o formulário para a view
		$this->view->form = $form;
		
		// Verifica se os dados foram passados por post			
	    if ( $this->getRequest()->isPost() ) {
	    	
	    		// Pega os dados passados por post
		        $data = $this->getRequest()->getPost();
		        
		        // Verifica se o formulário foi corretamente preenchido
		        if ( $form->isValid($data) ) {
		        	
		        	// Vetor que armazena os valores a serem inseridos
		        	$blind = null;
		        	foreach ($nomeColunas as $varForm){
		        		
		        		// Armazena os dados no vetor
		        		$blind[$varForm] = $form->getValue($varForm);		        				        		
		        	}
		        	
		        	
		        	// Atualiza os dados com id especificado
		        	$db->update($tabela, $blind, "id = $id");
		        	
		        	// redireciona para a página de visualização de análise
		        	$this->redirect("http://genetic/analise/?marcador=$tabela"); //$this->redirect($this->view->url());
		        	
				//echo $form->getValue($nomeColunas[2]);
		        }
		    
    }
    	
    }


}





